package com.class05;

/**
 * 1、测试运算符的使用4：逻辑运算符
 * 1.&(位与)  &&(短路与)  |(位或)  ||(短路或)   !   ^
 * 2、说明：
 * 1）逻辑运算符针对的都是boolean类型的变量进行操作
 * 2）逻辑运算符运算的结果也是boolean类型。
 * 3）逻辑运算符常使用在条件判断结构、循环结构中
 */
public class LogicTest10 {
    public static void main(String[] args) {
        /*区分：& 和 &&
        1.相同点：两个符号表达的都是“且”的关系。只有当符号左右两边的类型值均为true是，结果才为true。
        2.执行过程：
        1）如果符号左边是true，则&、&&都会执行符号右边的操作
        2）如果符号左边是false，则&会继续执行符号右边的操作   && 不会执行符号右边的操作
        3.开发中，我们推荐使用&&

         * */
        boolean b1 = true;
        b1 = false;
        int num1 = 10;
        if (b1 & (num1++ > 0)) {
//            System.out.println("hello");
        } else {
//            System.out.println("world");
        }
//        System.out.println(num1);


        boolean b2 = true;
        b2 = false;
        int num2 = 10;
        if (b2 && (num2++ > 0)) {
//            System.out.println("hello");
        } else {
//            System.out.println("world");
        }
//        System.out.println(num2);



//        =================================================
        /*区分：| 和 ||
        1.相同点：两个符号表达的都是“或”的关系。只要符号两边存在true的情况，结果就为true。
        2.执行过程：
        1）如果符号左边是false，则|、||都会执行符号右边的操作
        2）如果符号左边是ture，则|会继续执行符号右边的操作   || 不会执行符号右边的操作
        3.开发中，我们推荐使用||

         */


        boolean b3 = false;
        b3 = true;
        int num3 = 10;
        if (b3 | (num3++ > 0)) {
            System.out.println("hello");
        } else {
            System.out.println("world");
        }
        System.out.println(num3);





        boolean b4 = false;
        b4 = true;
        int num4 = 10;
        if (b4 || (num4++ > 0)) {
            System.out.println("hello");
        } else {
            System.out.println("world");
        }
        System.out.println(num4);




        int i = 12;
//        false   | false
        if (i>13 | i< 10){
            System.out.println("哈哈");
        }else {
            System.out.println("呵呵");
        }
    }







}
